iT邦幫忙

2023 iThome 鐵人賽

DAY 1
2

身為一名數據工程師,每天寫 code 做的事情簡單來說,都是 ETL。

Extract、Transform、Load(ETL)是一個常用於資料庫管理和商業智能領域的術語。ETL是指將數據從源系統中提取出來,通過一系列的轉換處理,然後載入到目標系統中的過程。

提取(Extract):是指從源系統中獲取數據的過程。這些源系統可以是各種不同的數據庫、文件或應用程序。通常,這些數據源可能具有不同的格式和結構,因此提取數據需要對源數據進行解析和讀取操作。

轉換(Transform):是指對提取的數據進行處理和轉換的過程。在這個階段,數據可能需要進行清理、重組、合併或計算等操作,以使其符合目標系統的要求。轉換過程可以使用各種不同的技術和工具,例如數據庫查詢、編程語言或商業智能工具。

載入(Load):是指將轉換後的數據載入到目標系統中的過程。這個目標系統可以是數據庫、數據倉庫或商業智能平台。載入過程通常需要將數據映射到目標系統的結構中,並進行數據驗證和錯誤處理。

它是一個資料處理的過程。在大數據時代,資料的處理變得非常重要,因為我們面臨著資料孤島、多樣化和巨量的挑戰。

首先,資料孤島是指資料存儲在不同的系統和地方,難以整合和分析。透過ETL,我們可以從不同的資料來源中提取資料,並將其轉換成統一的格式,然後載入到目標系統中,這樣我們就能夠更好地分析和利用這些資料。

其次,資料的多樣化也是一個挑戰。不同的資料源可能具有不同的格式和結構,透過ETL,我們可以將這些不同格式的資料轉換成統一的格式,這樣我們就能夠更輕鬆地進行分析和處理。

最後,資料的巨量也是一個問題。在大數據時代,我們面臨著海量的資料,傳統的資料處理方法已經無法應對這種挑戰。透過ETL的批處理和流處理,我們可以更有效地處理這些大量的資料。

舉個例子,假設我們要從不同的資料庫中提取資料,然後將其轉換成統一的格式,最後載入到數據倉庫中進行分析。這就是一個批處理的ETL過程。常見的情境如計算檔案字數、將上個月的資料聚合寫入資料庫。通常來說我們會期望量大但資料是完整的。

另外,假設我們要實時地處理來自不同資料源的資料,並將其轉換成統一的格式,然後即時地載入到目標系統中。這就是一個流處理的ETL過程。常見的情境如溫度監控、視訊轉換等等,主要的特色是「無邊界」的,你不知道資料何時會結束。

總之,ETL在大數據時代扮演著非常重要的角色,俗話說「Garbage In, garbage out」,沒有好的資料,就沒有辦法萃取出下一層的資訊,更別說是知識了。

這次鐵人賽,我會介紹兩款 ETL 框架,它們各別適合 Batch, Streaming 的兩種情境,以及我在過程中踩過的坑。一個是 Airflow,使用 Python;另一個是 Flink,使用 Java。

那就讓我們開始吧!


下一篇
Airflow 的安裝及啟動 - Day2
系列文
用 Airflow & Flink 來開發 ETL 吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言